Інформація про новину
  • Переглядів: 1760
  • Дата: 4-10-2021, 08:31
4-10-2021, 08:31

35. Логічний тип даних. Умовні оператори в Python

Категорія: Інформатика





Попередня сторінка:  34. Робота з текстовими файлами в Python
Наступна сторінка:   36. Елементи вибору в Python

До простих типів даних у Python належить логічний тип bool. Змінна типу bool може набувати значення True (істина) або False (хибність).

Прості і складені умови

Значень типу bool набувають вирази, побудовані за допомогою операцій порівняння (прості умови):

Проаналізуємо результати обчислення логічних виразів:

Оскільки 2-2 = 4 — істинна рівність, то значення відповідного логічного виразу дорівнює True

Отримано відповідь на запитання «Чи ділиться значення змінної NUM на 3?»

Логічні вирази для перевірки виконання кількох умов (складені умови) будують із використанням наведених логічних операцій:

Перевіримо, чи належить NUM проміжку [7; 20]:

Якщо змінній присвоїти значення логічного виразу, вона належатиме до типу bool:

Вбудовані функції all і any

Одночасну перевірку декількох умов можна записати коротше за допомогою вбудованих функцій all (англ. всі) і any (англ. хоч одна).

Функція аІІ(<список логічних виразів>) повертає True, якщо істинні всі перелічені в списку умови.

З’ясуємо, чи є значення NUM парним числом із проміжку від 7 до 20. Для цього слід одночасно перевірити три умови:

Функція апу(<список логічних виразів>) повертає True, якщо хоча б один елемент списку дорівнює True.

Перевіримо, чи дорівнює 0 хоча б одне зі значень х, у, z:

Алгоритми з розгалуженнями

Як ви знаєте, розгалуження — це алгоритмічна структура, в якій, залежно від істинності деякої умови, виконується одна з двох послідовностей дій. Пригадаємо синтаксис та семантику умовних операторів мови Python, призначених для програмування розгалужень.

Умовний оператор if

Виконання оператора if (англ. якщо) можна описати так: «якщо умова істинна, то виконати ці оператори». Оператор if реалізує алгоритмічну конструкцію неповне розгалуження (рис. 35.1).

Оператори записуються з обов’язковим однаковим відступом від лівого краю. Якщо оператор лише один, його можна записати після двокрапки в одному рядку з умовою.

Складемо програму для упорядкування введених з клавіатури значень змінних а і b так, щоб а не перевищувало Ь:

Умовний оператор if...else Алгоритмічній конструкції повне розгалуження (рис. 35.2) відповідає умовний оператор if...else (англ. якщо...інакше).

Якщо умова виконується, тобто має значення True, то виконується блок дій <оператори 1>. В іншому випадку виконується блок дій оператори 2>, записаний після службового слова else. Команди, вкладені в гілки if і else, записуються з однаковим відступом.

Складемо програму для перевірки, чи введені 3 числа є довжинами сторін прямокутного трикутника. Для перевірки скористаємось теоремою Піфагора:

Вк/іадення розгалужень

Якщо під час виконання (або невиконання) деякої умови потрібно знову робити вибір, то застосовують так звані вкладені розгалуження: у відповідній гілці умовного оператора знову використовують оператор if.

Складемо програму, яка б за уведеним цілим числом виводила слово «рік» у правильному відмінку (рис. 35.3). Проаналізувавши форми слова «рік», помічаємо, що форма слова залежить від останньої цифри числа К.

Проте значення від 11 до 14 слід опрацювати окремо (алгоритм на рис. 35.4).

Багатоваріантне розгалуження

Перевірку умови в гілці else можна записати скорочено, скориставшись ключовим словом elif (англ. else if — інакше, якщо).

Це дозволяє нам реалізувати багатоваріантне розгалуження (рис. 35.5).

Розглянемо задачу. Визначити, в якій координатній чверті лежить точка з координатами

У цьому прикладі складені умови, що перевіряються в гілках if...elif, охоплюють усі можливі варіанти розташування точки, що відповідають умові задачі. Тому якась із гілок буде виконана, і гілка else у цьому коді була б зайвою. Але якщо є ймовірність того, що змінна х або у набуде значення 0, то слід додати гілку else і записати в ній оператори для його опрацювання. Наприклад: else: print('To4Ka лежить на осі')

Розглянуті умовні оператори дозволяють реалізувати вибір дій у як завгодно складних випадках.

Питання для самоперевірки

1. Початкові значення змінних а = -3; b = 5. Визначте, чому дорівнюють а і b після виконання таких операторів:

2. Початкові значення змінних а = 8; b = 5. Визначте, чому дорівнюють а і b після виконання таких операторів:

3. Запишіть умовний оператор такого змісту: менше з двох значень х і у замінити нулем, а у випадку їх рівності — замінити нулями обидва.

4. Запишіть умовний оператор для обчислення значення у:

5. Наведіть приклад використання оператора if...elif...else.

6. Складіть програму, яка за введеним значенням температури t виводить повідомлення про стан, у якому перебуває вода за такої температури (твердий, рідкий, газоподібний).

Вправа 35

Скласти програму для знаходження коренів квадратного рівняння вигляду

1) Створіть Python file із назвою Вправа 36.

2) Завантажте модулі tkinter, messagebox (як mb), math.

3) Створіть вікно програми із заголовком Квадратне рівняння. Завершіть програму оператором root.mainloopO.

4) Розробіть інтерфейс програми за зразком (рис. 35.7). Віджетам Entry дайте назви епА, епВ, епС.

5) Опишіть функцію btn_click() — обробник події для кнопки Знайти корені.

Значення а, Ь, с можна зчитати з полів епА, епВ, епС у такий спосіб:

Результати обчислення виводьте до діалогового вікна, попередньо сформувавши рядок. Наприклад, якщо рівняння має два корені, значення коренів можна вивести так:

6) Підберіть такі набори значень а, Ь, с, щоб квадратне рівняння мало один корінь; два корені; не мало коренів.

Комп'ютерне тестування

Виконайте тестове завдання 35 із автоматичною перевіркою результату.

 

 

Це матеріал з підручника Інформатика 8 клас Бондаренко (2021)

 




Попередня сторінка:  34. Робота з текстовими файлами в Python
Наступна сторінка:   36. Елементи вибору в Python



^